#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time     : 2024/8/15 16:49
# @Author   : MingTai
# @File     : find_peaks.py


# 查找峰值元素  输入列表是 [1, 3, 2, 5, 4]
#   检查索引 1 的元素 3：3 > 1 且 3 > 2 → 是峰值
#   检查索引 3 的元素 5：5 > 2 且 5 > 4 → 是峰值
#   最终返回 [3, 5]
def find_peaks(list_int: list):
    peaks = []
    # 处理空列表或只有一个元素的情况
    if len(list_int) < 3:
        return peaks

    # 遍历列表，跳过首尾元素（它们不能同时有左右邻居元素）
    for i in range(1, len(list_int) - 1):
        # 判断当前元素是否大于左右邻居元素
        if list_int[i] > list_int[i - 1] and list_int[i] > list_int[i + 1]:
            peaks.append(list_int[i])  # 存储峰值元素值
            # 或者如果需要存储索引：peaks.append(i)

    return peaks


# 合并且排序两个数组
def merge_and_sort(list1, list2):
    merged_list = sorted(list1 + list2)
    return merged_list


def aa():
    # 示例使用
    array1 = [3, 1, 4]
    array2 = [2, 5, 6]

    sorted_array = merge_and_sort(array1, array2)
    print(sorted_array)  # 输出: [1, 2, 3, 4, 5, 6]


if __name__ == '__main__':
    # aa()
    print(find_peaks([1, 6, 2, 1, 8, 3]))
